﻿//using System.Collections.Generic;
//using System.IO;
//using Newtonsoft.Json;

//namespace ZQNB.Common.Serialize
//{
//    public static class NewtonJsonHelper
//    {
//        private static object _lock = new object();
//        private static JsonSerializerSettings _defaultSettings;
//        public static JsonSerializerSettings DefaultSettings
//        {
//            get { return _defaultSettings; }
//            set
//            {
//                _defaultSettings = value;
//                JsonConvert.DefaultSettings = () => value;
//            }
//        }

//        static NewtonJsonHelper()
//        {
//            DefaultSettings = new JsonSerializerSettings
//            {
//                ReferenceLoopHandling = ReferenceLoopHandling.Ignore
//            };
//        }

//        public static string Serialize<T>(T data)
//        {
//            lock (_lock)
//            {
//                string json = JsonConvert.SerializeObject(data);
//                return json;
//            }
//        }
//        public static T Deserialize<T>(string input)
//        {
//            lock (_lock)
//            {
//                T obj = JsonConvert.DeserializeObject<T>(input);
//                return obj;
//            }
//        }
//        public static object DeserializeObject(string input)
//        {
//            lock (_lock)
//            {
//                object obj = JsonConvert.DeserializeObject(input);
//                return obj;
//            }
//        }
//        public static void Serialize(TextWriter textWriter, object value)
//        {
//            lock (_lock)
//            {
//                var defaultSerializer = JsonSerializer.Create(DefaultSettings);
//                defaultSerializer.Serialize(textWriter, value);
//            }
//        }
//    }
//}